package com.dgshanger.sanhxiaofeisc.mvp.contract;

import android.support.annotation.NonNull;

import com.dgshanger.sanhxiaofeisc.entity.RegisterEntity;
import com.xx.baseuilibrary.mvp.BaseMvpView;
import com.xx.baseutilslibrary.network.rx.XxBaseHttpObserver;

/**
 * RegisterContract
 * 沉迷学习不能自拔
 * Describe：
 * Created by 雷小星🍀 on 2018/2/6 9:34.
 */

public interface RegisterContract {
    interface Model {


        /**
         * 发送验证码
         *
         * @param phone 手机号
         */
        void sendVCode(@NonNull String phone, XxBaseHttpObserver<Object> httpObserver);

        /**
         * 注册
         *
         * @param mobile      手机号
         * @param verify_code 验证码
         */
        void register(@NonNull String mobile,
                      @NonNull String verify_code,
                      @NonNull String pwd,
                      String invite_code,
                      XxBaseHttpObserver<RegisterEntity> httpObserver);

        /**
         * 存入token到本地
         *
         * @param token
         */
        void putToken(String token);
    }

    interface View extends BaseMvpView {

        String getTag();

        /**
         * 获取注册手机号
         *
         * @return 注册手机号
         */
        String getPhone();

        /**
         * 获取验证码
         *
         * @return 验证码
         */
        String geteVCode();

        /**
         * 获取密码
         *
         * @return 密码
         */
        String getPassword();

        /**
         * 获取确认密码
         *
         * @return 确认密码
         */
        String getSurePassword();

        /**
         * 获取注册推荐人
         *
         * @return 注册推荐人
         */
        String getRegisterReferrer();

        /**
         * 设置发送按钮是否可用
         *
         * @param enable 是否可用
         */
        void setSendBtnEnable(boolean enable);

        /**
         * 设置发送按钮文本内容
         *
         * @param text 发送按钮文本内容
         */
        void setSendBtnText(String text);

        /**
         * 注册成功
         */
        void registerSuccess();
    }

    interface Presenter {

        /**
         * 注册
         */
        void register();

        /**
         * 发送验证码
         */
        void sendVCode();
    }
}
